package com.wgy.day30.FileFilter文件过滤器;

import java.io.File;

public class Demo03FileFilter {
    public static void main(String[] args) {
        File f1 = new File("D:\\小云\\abc");
        getAllFiles(f1);


    }

    public static void getAllFiles(File dir) {
 /*   //使用匿名内部类优化
        File[] files = dir.listFiles(new FileFilter(){
            @Override
            public boolean accept(File pathname) {
               //过滤规则,pathname是文件夹或者是.java结尾的文件就返回true
                return pathname.isDirectory() || pathname.getName().toLowerCase().endsWith(".java");
            }
        });
 */

/*  //使用Lambda表达式优化,接口中只有1个抽象方法
        File[] files = dir.listFiles((File pathname) -> {
            return pathname.isDirectory() || pathname.getName().toLowerCase().endsWith(".java");
                });
 */

    //使用Lambda表达式继续优化
     File[] files = dir.listFiles(pathname -> pathname.isDirectory() || pathname.getName().toLowerCase().endsWith(".java"));

        for (File f : files) {
            if (f.isDirectory()) {
                getAllFiles(f);
            } else {
                System.out.println(f);
            }

        }

    }
}
